package com.xcx.bo;

import java.io.Serializable;
import java.util.Date;

/**
 * @author 
 */
public class BoxListInfo implements Serializable {
    /**
     * 盒子列表ID
     */
    private String boxInfoNo;

    /**
     * 产品号
     */
    private String productCode;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 要打开的小程序 appId
     */
    private String productAppid;

    /**
     * 打开的页面路径，如果为空则打开首页
     */
    private String productPath;

    /**
     * 要打开的小程序版本，有效值 develop（开发版），trial（体验版），release（正式版）
     */
    private String productEnvversion;

    /**
     * 产品图片url
     */
    private String productPhotoUrl;

    /**
     * 产品详情
     */
    private String productDesc;

    /**
     * 产品排序
     */
    private String productSort;

    /**
     * 产品是否最新 0 - 普通 1 - 最新 
     */
    private String productIsNew;

    /**
     * 产品状态 0 -不显示 1 - 显示 
     */
    private String productStatus;

    /**
     * 产品服务状态 0 - 服务中断 1 - 部分故障 2 - 服务正常
     */
    private String productServiceStatus;

    /**
     * 扩展信息
     */
    private String extInfo;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 创建时间
     */
    private Date createdDate;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 修改时间
     */
    private Date updatedDate;

    private static final long serialVersionUID = 1L;

    public String getBoxInfoNo() {
        return boxInfoNo;
    }

    public void setBoxInfoNo(String boxInfoNo) {
        this.boxInfoNo = boxInfoNo;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductAppid() {
        return productAppid;
    }

    public void setProductAppid(String productAppid) {
        this.productAppid = productAppid;
    }

    public String getProductPath() {
        return productPath;
    }

    public void setProductPath(String productPath) {
        this.productPath = productPath;
    }

    public String getProductEnvversion() {
        return productEnvversion;
    }

    public void setProductEnvversion(String productEnvversion) {
        this.productEnvversion = productEnvversion;
    }

    public String getProductPhotoUrl() {
        return productPhotoUrl;
    }

    public void setProductPhotoUrl(String productPhotoUrl) {
        this.productPhotoUrl = productPhotoUrl;
    }

    public String getProductDesc() {
        return productDesc;
    }

    public void setProductDesc(String productDesc) {
        this.productDesc = productDesc;
    }

    public String getProductSort() {
        return productSort;
    }

    public void setProductSort(String productSort) {
        this.productSort = productSort;
    }

    public String getProductIsNew() {
        return productIsNew;
    }

    public void setProductIsNew(String productIsNew) {
        this.productIsNew = productIsNew;
    }

    public String getProductStatus() {
        return productStatus;
    }

    public void setProductStatus(String productStatus) {
        this.productStatus = productStatus;
    }

    public String getProductServiceStatus() {
        return productServiceStatus;
    }

    public void setProductServiceStatus(String productServiceStatus) {
        this.productServiceStatus = productServiceStatus;
    }

    public String getExtInfo() {
        return extInfo;
    }

    public void setExtInfo(String extInfo) {
        this.extInfo = extInfo;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedDate() {
        return updatedDate;
    }

    public void setUpdatedDate(Date updatedDate) {
        this.updatedDate = updatedDate;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        BoxListInfo other = (BoxListInfo) that;
        return (this.getBoxInfoNo() == null ? other.getBoxInfoNo() == null : this.getBoxInfoNo().equals(other.getBoxInfoNo()))
            && (this.getProductCode() == null ? other.getProductCode() == null : this.getProductCode().equals(other.getProductCode()))
            && (this.getProductName() == null ? other.getProductName() == null : this.getProductName().equals(other.getProductName()))
            && (this.getProductAppid() == null ? other.getProductAppid() == null : this.getProductAppid().equals(other.getProductAppid()))
            && (this.getProductPath() == null ? other.getProductPath() == null : this.getProductPath().equals(other.getProductPath()))
            && (this.getProductEnvversion() == null ? other.getProductEnvversion() == null : this.getProductEnvversion().equals(other.getProductEnvversion()))
            && (this.getProductPhotoUrl() == null ? other.getProductPhotoUrl() == null : this.getProductPhotoUrl().equals(other.getProductPhotoUrl()))
            && (this.getProductDesc() == null ? other.getProductDesc() == null : this.getProductDesc().equals(other.getProductDesc()))
            && (this.getProductSort() == null ? other.getProductSort() == null : this.getProductSort().equals(other.getProductSort()))
            && (this.getProductIsNew() == null ? other.getProductIsNew() == null : this.getProductIsNew().equals(other.getProductIsNew()))
            && (this.getProductStatus() == null ? other.getProductStatus() == null : this.getProductStatus().equals(other.getProductStatus()))
            && (this.getProductServiceStatus() == null ? other.getProductServiceStatus() == null : this.getProductServiceStatus().equals(other.getProductServiceStatus()))
            && (this.getExtInfo() == null ? other.getExtInfo() == null : this.getExtInfo().equals(other.getExtInfo()))
            && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy()))
            && (this.getCreatedDate() == null ? other.getCreatedDate() == null : this.getCreatedDate().equals(other.getCreatedDate()))
            && (this.getUpdatedBy() == null ? other.getUpdatedBy() == null : this.getUpdatedBy().equals(other.getUpdatedBy()))
            && (this.getUpdatedDate() == null ? other.getUpdatedDate() == null : this.getUpdatedDate().equals(other.getUpdatedDate()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getBoxInfoNo() == null) ? 0 : getBoxInfoNo().hashCode());
        result = prime * result + ((getProductCode() == null) ? 0 : getProductCode().hashCode());
        result = prime * result + ((getProductName() == null) ? 0 : getProductName().hashCode());
        result = prime * result + ((getProductAppid() == null) ? 0 : getProductAppid().hashCode());
        result = prime * result + ((getProductPath() == null) ? 0 : getProductPath().hashCode());
        result = prime * result + ((getProductEnvversion() == null) ? 0 : getProductEnvversion().hashCode());
        result = prime * result + ((getProductPhotoUrl() == null) ? 0 : getProductPhotoUrl().hashCode());
        result = prime * result + ((getProductDesc() == null) ? 0 : getProductDesc().hashCode());
        result = prime * result + ((getProductSort() == null) ? 0 : getProductSort().hashCode());
        result = prime * result + ((getProductIsNew() == null) ? 0 : getProductIsNew().hashCode());
        result = prime * result + ((getProductStatus() == null) ? 0 : getProductStatus().hashCode());
        result = prime * result + ((getProductServiceStatus() == null) ? 0 : getProductServiceStatus().hashCode());
        result = prime * result + ((getExtInfo() == null) ? 0 : getExtInfo().hashCode());
        result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode());
        result = prime * result + ((getCreatedDate() == null) ? 0 : getCreatedDate().hashCode());
        result = prime * result + ((getUpdatedBy() == null) ? 0 : getUpdatedBy().hashCode());
        result = prime * result + ((getUpdatedDate() == null) ? 0 : getUpdatedDate().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", boxInfoNo=").append(boxInfoNo);
        sb.append(", productCode=").append(productCode);
        sb.append(", productName=").append(productName);
        sb.append(", productAppid=").append(productAppid);
        sb.append(", productPath=").append(productPath);
        sb.append(", productEnvversion=").append(productEnvversion);
        sb.append(", productPhotoUrl=").append(productPhotoUrl);
        sb.append(", productDesc=").append(productDesc);
        sb.append(", productSort=").append(productSort);
        sb.append(", productIsNew=").append(productIsNew);
        sb.append(", productStatus=").append(productStatus);
        sb.append(", productServiceStatus=").append(productServiceStatus);
        sb.append(", extInfo=").append(extInfo);
        sb.append(", createdBy=").append(createdBy);
        sb.append(", createdDate=").append(createdDate);
        sb.append(", updatedBy=").append(updatedBy);
        sb.append(", updatedDate=").append(updatedDate);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}